// 导入Sequelize模块
const { Sequelize } = require("sequelize");

// 创建Sequelize实例，配置数据库连接
const sequelize = new Sequelize(
  process.env.DB_NAME, // 从环境变量获取数据库名称
  process.env.DB_USER, // 从环境变量获取数据库用户名
  process.env.DB_PASSWORD, // 从环境变量获取数据库密码
  {
    host: process.env.DB_HOST, // 从环境变量获取数据库主机地址
    port: process.env.DB_PORT || 3306, // 从环境变量获取端口，默认3306
    dialect: process.env.DB_DIALECT || "mysql", // 从环境变量获取数据库类型，默认mysql
    dialectModule: require("mysql2"), // 指定使用mysql2模块作为驱动
    // 日志配置：开发环境打印日志，其他环境不打印
    logging: process.env.NODE_ENV === "development" ? console.log : false,
    // 连接池配置
    pool: {
      max: 5, // 连接池最大连接数
      min: 0, // 连接池最小连接数
      acquire: 30000, // 获取连接的超时时间（毫秒）
      idle: 10000, // 连接空闲超时时间（毫秒）
    },
  }
);

// 导出配置好的Sequelize实例
module.exports = sequelize;
